[網友來信] 程式設計課我都聽得懂,但自己面對練習題,就會有「不知從何開始」的茫然感!請問紀老師,我該怎麼辦?
這是今早收到的網友來信。「實戰時有『茫然感』」,這是程式設計初學者都會遇到的問題。我提供了我的看法,以及可行的步驟。希望也能幫助有相同問題的其他網友,早日克服這個問題,享受程式設計那種「操之在我」的樂趣! ^ ^
如果您也有學程式設計方面的問題,也歡迎您直接貼在這邊。害羞的同學也可以利用私訊,我會盡力幫忙的!
紀老師
-------------------
紀老師您好:
我開始上 JAVA 的課程,上課都聽得懂老師在說什麼,有些課本上的範例練習也解得出來。但是都會想比較久,或者是解答看得懂、但從零開始寫就不知道如何下手。不知道是不是自己的邏輯思考比較差一點,還是組織結構不太靈活呢?想請問老師,學程式設計除了多寫多看之外,有沒有什麼方法可以訓練自己寫程式的邏輯呢?
--------------------
紀老師回答:
您好:
能聽得懂,且課本上的範例練習解得出來,這已經很難能可貴了!想得比較久,或者是沒看解答從零開始寫不出來,都是正常的。你的邏輯思考並沒有比較差,如果是比較差,那上課也不會聽得懂了。
我曾經在自己的課堂上重複強調:「程式設計是一項『技能』,不是一項『知識』。」所謂「技能」,是指「就算知道怎麼做,也得鍥而不捨地重複練習,才有辦法掌握」的東西。舉例來說,「漢朝的開國皇帝是『漢高祖劉邦』」,這是一項「知識」。因為你一旦知道了,不必重複練習,馬上就能掌握。但「游泳」、「學開車」就是一項「技能」。你聽懂教練教你的打水、換氣要領,心中也了解了,但你有辦法下水後馬上掌握嗎?不行!你還是得每天不斷地練習,直到那些要領內化為自己的一部分後,才有辦法掌握。
程式設計也是一項「技能」,而不是「知識」!你上課聽得懂老師說的,範例也能解得出來,就已經類似在駕訓場中,聽懂教練說的,在教練的指導下(如:「好!現在往右打兩圈...對!再往左半圈...」),能順利地路邊停車。但你沒看解答就寫不出來,以及沒有教練的指導,就茫然地不知該怎麼做,甚至於手忙腳亂。一般人在駕訓場會放棄嗎?不會吧?大多會抱著「多練幾遍就會」的『正確心態』,簡單事情重複做,直到會為止。(同理,學程式也麻煩您抱持一樣的『正確心態』)
所以,你練習題想得比較久(路邊停車偶而會完全暫停想一下、無法一次停進去),沒看解答從零開始寫就不知道該如何下手(教練沒在旁邊碎碎念「好...打兩圈半...對!回正...」就手足無措),這些都是正常現象!哪天我遇到一個講完正課、練習題也會做,馬上拿著新題目連想都沒想就寫出正確答案的學員,我可能會嚇得大叫:「有鬼啊!」因此,不要再認為自己的思考邏輯比較差,或是組織結構不太靈活了!想學會程式設計(開車),除了「多看多寫」(每天到教練場多練習一點),並沒有其他捷徑。
不過我倒是可以提供給你平日練習的方法:
1. 拿起練習題,遮住答案,先看題意,並嘗試了解題意。
2. 題目看懂後,開始撰寫程式。
3. 卡住實在想不出來時,偷看解答。先把解答看懂,看不懂就得問你的老師(問我我也是歡迎啦)。看懂後,把答案遮起來,試試看自己能否在記憶猶新的情況下,重現剛剛你看到的解答(而不是把那段解答看著照打進去你的原始碼,那個叫『作弊』)。
4. 如果記憶猶新、不看答案的情況下,還是無法重現解答的作法,那就再偷看一次解答。看完後遮起來再試一次,直到自己可以不看重現解答為止。事實上,就算經過偷看,能自行做出來,書上的招式已經是你自己的了。(就像不必教練坐在副駕駛座提示,你自己已經能路邊停車一樣)
5. 把 1~4 步驟重複做 100 遍以上!市面上有很多 Java 範例集的書,買本回來,依照上法從第一題做到最後一題,如果還不會,我免費當你的家教教到你會為止(笑)!
以上是我 1980 年開始自學程式設計時(是的,我是 32 年前開始學程式設計的,當時是自學「Basic」語言),親自所使用的方法。不過當時我重複做了近 500 題(兩本範例集,一本 300 題,一本 180 題,那兩本範例集我還留在書架上,提醒自己不忘初衷)。所以,你問「有沒有什麼方法是可以幫助自己訓練寫程式邏輯的」,上面就是答案。但如果你真正想問的問題是「有沒有什麼方法是可以幫助自己『一下子就會』寫程式」,抱歉!我沒有答案!
希望這樣的回答您能滿意! ^ ^